
#ifndef _PROPLIB_PROP_STRING_H_
#define	_PROPLIB_PROP_STRING_H_

#include <prop/prop_object.h>

typedef struct _prop_string *prop_string_t;

__BEGIN_DECLS
prop_string_t	prop_string_create(void);
prop_string_t	prop_string_create_cstring(const char *);
prop_string_t	prop_string_create_cstring_nocopy(const char *);

prop_string_t	prop_string_copy(prop_string_t);
prop_string_t	prop_string_copy_mutable(prop_string_t);

size_t		prop_string_size(prop_string_t);
bool		prop_string_mutable(prop_string_t);

char *		prop_string_cstring(prop_string_t);
const char *	prop_string_cstring_nocopy(prop_string_t);

bool		prop_string_append(prop_string_t, prop_string_t);
bool		prop_string_append_cstring(prop_string_t, const char *);

bool		prop_string_equals(prop_string_t, prop_string_t);
bool		prop_string_equals_cstring(prop_string_t, const char *);
__END_DECLS

#endif /* _PROPLIB_PROP_STRING_H_ */
